package com.yunkeji.api.auth.service;

import com.yunkeji.api.auth.bo.ChangeTokenBo;
import com.yunkeji.api.auth.bo.SendCodeBo;
import com.yunkeji.api.auth.bo.ToLoginBo;
import com.yunkeji.api.auth.bo.ToRegBo;
import com.yunkeji.api.auth.vo.ToLoginVo;
import com.yunkeji.api.user.vo.UserInfoVo;
/** @author 老张 */
public interface AuthService {

    /**
     * 发送验证码
     *
     * @author 老张
     * @param bo
     * @return
     */
    void sendCode(SendCodeBo bo);

    /**
     * 登录
     *
     * @author 老张
     * @param bo
     * @return
     */
    ToLoginVo toLogin(ToLoginBo bo);
    /**
     * 登录
     *
     * @author 老张
     * @param bo
     * @return
     */
    ToLoginVo toLogin(ToLoginBo bo, Boolean needCode);
    /**
     * 置换Token
     *
     * @author 老张
     * @param bo
     * @return
     */
    ToLoginVo changeToken(ChangeTokenBo bo);

    /**
     * 刷新Kmsg的Token
     *
     * @author 老张
     * @return
     */
    String refreshKmsgToken(Long platformId);

    /**
     * 注册一个用户
     *
     * @author 老张
     * @param phone
     * @return
     */
    UserInfoVo regUser(ToLoginBo toLoginBo);

    ToLoginVo registerByCode(ToRegBo bo);

    void resetPwd(ToRegBo bo);
}
